package com.code.springboot3.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.code.springboot3.model.dto.AddCategoryDto;
import com.code.springboot3.model.dto.UpdateCategoryDto;
import com.code.springboot3.model.entity.Category;
import com.code.springboot3.model.vo.CategoryVo;

import java.util.List;


/**
* @author Soft
* @description 针对表【category】的数据库操作Service
* @createDate 2024-12-26 14:20:41
*/
public interface CategoryService extends IService<Category> {

    /**
     * 添加分类
     * @param addCategoryDto
     * {
     *     "categoryName":"人文",
     *     "categoryAlias":"rw"
     * }
     * @param token token令牌
     */
    void addCategory(AddCategoryDto addCategoryDto, String token);

    /**
     * 获取文章分类列表
     * @return List文章分类列表
     */
    List<CategoryVo> queryCategoryList();

    /**
     * 更新文章分类  该接口用于更新文章分类
     * @param updateCategoryDto  {
     *     "id":6,
     *     "categoryName":"风土人情",
     *     "categoryAlias":"ftrq"
     * }
     * @param token token令牌
     */
    void updateCategory(UpdateCategoryDto updateCategoryDto, String token);

    /**
     * 删除文章分类
     * @param id 分类ID
     * @param token 用户token
     * @throws BusinessException 当分类不存在、分类下有文章或无权限时抛出
     */
    void deleteCategory(Integer id, String token);
}
